<?php

class OrdenInspeccionsController extends AppController {

    var $name = 'OrdenInspeccions';
    var $helpers = array('Time');
    var $components = array('Cookie','Search.Prg');

    public $presetVars = array(
            array('field' => 'empresa', 'type' => 'value'));

    function index() {
        $this->OrdenInspeccion->recursive = 0;
        //$this->set('ordenInspeccions', $this->paginate('OrdenInspeccion', array('OrdenInspeccion.estado' => '0')));
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->OrdenInspeccion->parseCriteria($this->passedArgs);
        $this->set('ordenInspeccions', $this->paginate('OrdenInspeccion', array('OrdenInspeccion.estado' => '0')));
    }

    function index_admin() {
        $this->OrdenInspeccion->recursive = 0;
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->OrdenInspeccion->parseCriteria($this->passedArgs);
        $this->set('ordenInspeccions', $this->paginate('OrdenInspeccion', array('OrdenInspeccion.estado' => '0')));
    }

    function index_produccion() {
        $this->OrdenInspeccion->recursive = 0;
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->OrdenInspeccion->parseCriteria($this->passedArgs);
        $this->set('ordenInspeccions', $this->paginate('OrdenInspeccion', array('OrdenInspeccion.estado' => '0')));
    }

    function index_aprob($aprob=null) {
        $this->OrdenInspeccion->recursive = 0;
        if($aprob==1) {
            $this->set('tipo', 'Aprobadas');
        }else {
            $this->set('tipo', 'Desaprobadas');
        }
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->OrdenInspeccion->parseCriteria($this->passedArgs);
        $this->set('ordenInspeccions', $this->paginate('OrdenInspeccion', array('OrdenInspeccion.estado' => $aprob)));
    }

    function index_aprob_admin($aprob=null) {
        $this->OrdenInspeccion->recursive = 0;
        if($aprob==1) {
            $this->set('tipo', 'Aprobadas');
        }else {
            $this->set('tipo', 'Desaprobadas');
        }
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->OrdenInspeccion->parseCriteria($this->passedArgs);
        $this->set('ordenInspeccions', $this->paginate('OrdenInspeccion', array('OrdenInspeccion.estado' => $aprob)));
    }

    function index_orden_inspeccion() {
        $this->OrdenInspeccion->recursive = 0;
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->OrdenInspeccion->parseCriteria($this->passedArgs);
        $this->set('ordenInspeccions', $this->paginate('OrdenInspeccion', array('OrdenInspeccion.estado' => '0')));
    }

    function index_cotizacion() {
        $this->OrdenInspeccion->recursive = 0;
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->OrdenInspeccion->parseCriteria($this->passedArgs);
        $this->set('ordenInspeccions', $this->paginate('OrdenInspeccion', array('OrdenInspeccion.estado' => '0')));
    }
function index_requisicion() {
        $this->OrdenInspeccion->recursive = 0;
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->OrdenInspeccion->parseCriteria($this->passedArgs);
        $this->set('ordenInspeccions', $this->paginate('OrdenInspeccion', array('OrdenInspeccion.estado' => '0')));
    }
    function index_orden_trabajo() {
        $this->OrdenInspeccion->recursive = 0;
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->OrdenInspeccion->parseCriteria($this->passedArgs);
        $this->set('ordenInspeccions', $this->paginate('OrdenInspeccion', array('OrdenInspeccion.estado' => '1')));
    }

    function view($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Registro no encontrado', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->set('ordenInspeccion', $this->OrdenInspeccion->read(null, $id));
    }

    function view_admin($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Registro no encontrado', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->set('ordenInspeccion', $this->OrdenInspeccion->read(null, $id));
    }

    function view_produccion($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Registro no encontrado', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->set('ordenInspeccion', $this->OrdenInspeccion->read(null, $id));
    }

    function add() {
        if (!empty($this->data)) {
            $this->OrdenInspeccion->create();
            $this->OrdenInspeccion->set("mes", $this->data["OrdenInspeccion"]["fecha"]["month"]);
            $this->OrdenInspeccion->set("anio", $this->data["OrdenInspeccion"]["fecha"]["year"]);
            $this->OrdenInspeccion->set("estado", 0);
            if ($this->OrdenInspeccion->save($this->data)) {
                $this->Session->setFlash(__('El registro se guardo satisfactoriamente', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('El registro no pudo ser ingresado debido a un problema. Verifique si no es un registro duplicado', true));
            }
        }
        $tipoOrdenInspeccions = $this->OrdenInspeccion->TipoOrdenInspeccion->find('list');
        $ultimo = $this->OrdenInspeccion->find('first',
                array('conditions' =>
                array('OrdenInspeccion.mes' => date('m'),
                        'OrdenInspeccion.anio' => date('Y')),
                'order' => "OrdenInspeccion.id DESC"));
        $this->data["OrdenInspeccion"]["correlativo"] = $ultimo["OrdenInspeccion"]["correlativo"] + 1;
        $this->set(compact('tipoOrdenInspeccions'));
    }

    function edit($id = null) {
        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('Registro no encontrado', true));
            $this->redirect(array('action' => 'index'));
        }
        if (!empty($this->data)) {
            if ($this->OrdenInspeccion->save($this->data)) {
                $this->Session->setFlash(__('El registro se actualizo correctamente', true));
                $this->redirect(array('action' => 'view', $id));
            } else {
                $this->Session->setFlash(__('La informacion no se guardo debido a un error interno.', true));
            }
        }
        if (empty($this->data)) {
            $this->data = $this->OrdenInspeccion->read(null, $id);
        }
        $tipoOrdenInspeccions = $this->OrdenInspeccion->TipoOrdenInspeccion->find('list');
        $this->set(compact('tipoOrdenInspeccions'));
    }

    function aprobar($id = null, $aprobar = null) {
        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('Registro no encontrado', true));
            $this->redirect(array('action' => 'index_produccion'));
        }
        $this->OrdenInspeccion->id=$id;
        if ($this->OrdenInspeccion->saveField('estado',$aprobar)) {
            if($aprobar==1) {
                $this->Session->setFlash(__('El registro se actualizo a estado Aprobado', true));
            }else {
                $this->Session->setFlash(__('El registro se actualizo a estado Desaprobado', true));
            }
            $this->redirect(array('action' => 'index_produccion'));
        } else {
            $this->Session->setFlash(__('La informacion no se guardo debido a un error interno.', true));
        }

        $this->redirect(array('action' => 'index_produccion'));
    }

    function delete($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('No se encontro registro', true));
            $this->redirect(array('action' => 'index'));
        }
        if ($this->OrdenInspeccion->delete($id)) {
            $this->Session->setFlash(__('Registro eliminado exitosamente', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->Session->setFlash(__('No se pudo eliminar registro', true));
        $this->redirect(array('action' => 'index'));
    }

    function fecha_recepcion($id = null) {
        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('Registro no encontrado', true));
            $this->redirect(array('action' => 'index_produccion'));
        }
        if (!empty($this->data)) {
            if ($this->OrdenInspeccion->save($this->data)) {
                $this->Session->setFlash(__('El registro se actualizo correctamente', true));
                $this->redirect(array('action' => 'view_produccion', $id));
            } else {
                $this->Session->setFlash(__('La informacion no se guardo debido a un error interno.', true));
            }
        }
        if (empty($this->data)) {
            $this->data = $this->OrdenInspeccion->read(null, $id);
        }
        $tipoOrdenInspeccions = $this->OrdenInspeccion->TipoOrdenInspeccion->find('list');
        $this->set(compact('tipoOrdenInspeccions'));
    }

    function fecha_entrega($id = null) {
        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('Registro no encontrado', true));
            $this->redirect(array('action' => 'index_produccion'));
        }
        if (!empty($this->data)) {
            if ($this->OrdenInspeccion->save($this->data)) {
                $this->Session->setFlash(__('El registro se actualizo correctamente', true));
                $this->redirect(array('action' => 'view_produccion', $id));
            } else {
                $this->Session->setFlash(__('La informacion no se guardo debido a un error interno.', true));
            }
        }
        if (empty($this->data)) {
            $this->data = $this->OrdenInspeccion->read(null, $id);
        }
        $tipoOrdenInspeccions = $this->OrdenInspeccion->TipoOrdenInspeccion->find('list');
        $this->set(compact('tipoOrdenInspeccions'));
    }

}
?>